using System.ComponentModel;
using System.Workflow.Activities;
using System.Workflow.ComponentModel;

namespace TechHeadBrothers.Workflows.Activities
{
    public partial class UploadVideo : SequenceActivity
    {
        public static DependencyProperty AccountIDProperty =
            DependencyProperty.Register("AccountID", typeof (string), typeof (UploadVideo));

        public static DependencyProperty AccountKeyProperty =
            DependencyProperty.Register("AccountKey", typeof (string), typeof (UploadVideo));

        public static DependencyProperty FilesetNameProperty =
            DependencyProperty.Register("FilesetName", typeof (string), typeof (UploadVideo));

        public static DependencyProperty ManifestPathProperty =
            DependencyProperty.Register("ManifestPath", typeof (string), typeof (UploadVideo));

        public static DependencyProperty VideoPathProperty =
            DependencyProperty.Register("VideoPath", typeof (string), typeof (UploadVideo));

        public static DependencyProperty ZipPathProperty =
            DependencyProperty.Register("ZipPath", typeof (string), typeof (UploadVideo));

        public UploadVideo()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Gets or sets the video path.
        /// </summary>
        /// <value>The video path.</value>
        [Description("Path of the video to upload")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string VideoPath
        {
            get { return ((string) (base.GetValue(VideoPathProperty))); }
            set { base.SetValue(VideoPathProperty, value); }
        }

        /// <summary>
        /// Gets or sets the manifest path.
        /// </summary>
        /// <value>The manifest path.</value>
        [Description("Manifest Path of the video")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string ManifestPath
        {
            get { return ((string) (base.GetValue(ManifestPathProperty))); }
            set { base.SetValue(ManifestPathProperty, value); }
        }

        /// <summary>
        /// Gets or sets the zip path.
        /// </summary>
        /// <value>The zip path.</value>
        [Description("Path of the zip to upload")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string ZipPath
        {
            get { return ((string) (base.GetValue(ZipPathProperty))); }
            set { base.SetValue(ZipPathProperty, value); }
        }

        /// <summary>
        /// Gets or sets the name of the fileset.
        /// </summary>
        /// <value>The name of the fileset.</value>
        [Description("The name of the fileset")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string FilesetName
        {
            get { return ((string) (base.GetValue(FilesetNameProperty))); }
            set { base.SetValue(FilesetNameProperty, value); }
        }

        /// <summary>
        /// Gets or sets the account key.
        /// </summary>
        /// <value>The account key.</value>
        [Description("The AccountKey")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string AccountKey
        {
            get { return ((string) (base.GetValue(AccountKeyProperty))); }
            set { base.SetValue(AccountKeyProperty, value); }
        }

        /// <summary>
        /// Gets or sets the account ID.
        /// </summary>
        /// <value>The account ID.</value>
        [Description("The AccountID ")]
        [Category("Silverlight")]
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public string AccountID
        {
            get { return ((string) (base.GetValue(AccountIDProperty))); }
            set { base.SetValue(AccountIDProperty, value); }
        }

        /// <summary>
        /// Executes the activity.
        /// </summary>
        /// <param name="executionContext">The execution context of the activity.</param>
        /// <returns>
        /// The <see cref="T:System.Workflow.ComponentModel.ActivityExecutionStatus"></see> of the activity after executing the activity.
        /// </returns>
        protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
        {
            return base.Execute(executionContext);
        }
    }
}